  precision highp sampler2D;
  uniform sampler2D baseTexture;
  in vec2 v_textureCoordinates;
  vec4 photoshop_desaturate(vec3 color)
  {
      float bw = (min(color.r, min(color.g, color.b)) + max(color.r, max(color.g, color.b))) * 0.5;
      return vec4(bw, bw, bw, 1.0);
  }
  void main()
  {
    vec4 color = texture(baseTexture,v_textureCoordinates);
    vec3 gray = photoshop_desaturate(color.rgb).rgb;
    color.r = clamp(0.21 - gray.r,0.0, 1.0);
    color.g = 1.0 - gray.g;
    color.b = 1.2 - gray.b;
    out_FragColor = color;
  }